In order to facilitate the reading of the description to follow, a number of terms and acronyms, which are well known in the art are defined below. These definitions are not to be taken as limiting and are provided as examples for facilitation of understanding of the disclosure. A complete and exact definition may be found in various books and other publications in the relevant fields.    Authentication is the process of verifying an object or message to ensure that the object or message are what they purport to be and/or were not tampered with. For example, authenticating an e-mail message can check that it was signed using a method that can only be performed by the supposed sender.    Encryption is the conversion of data into a form that cannot be easily understood by unauthorized people. Decryption is the process of converting encrypted data back into a form, in which it can be (at least partly) understood. Un-encrypted data is usually called Plain-text while encrypted data is referred to as Cipher-text. In some encryption methods, the encryption and decryption are subject to a Key, used for conversion between one form and the other.    Cryptography is the art of protecting information by encrypting it into an unreadable format (i.e. cipher-text). In some implementations, only those who possess a secret key can decrypt the message into plain text.    As the Internet and other forms of electronic communication become more prevalent, electronic security is becoming increasingly important Cryptography is therefore used to protect data such as e-mail messages, credit card information, and so forth.    Symmetric-key cryptography is an encryption method in which the sender and receiver of a message share a single, common key, which is used to encrypt and decrypt the message. Symmetric-key systems are simpler and faster, but their main drawback is that the two parties must somehow exchange the key in a secure way. Also, the receiver can pretend (to third parties) to be the sender, using the key.    The most popular symmetric-key system is the DES (Data Encryption Standard), also described below.    Asymmetric-key cryptography is a cryptographic system that uses two keys—one key for encryption and another key for decryption.    Public-key cryptography is an asymmetric-key cryptography. According to this method, one key is known to a plurality of persons (and hence called Public-key), while the other key is known only to one person (and hence called Private-key).    An important feature of the public key system is that the public and private keys are related in such a way that once the public-key is used to encrypt a message, only the corresponding private key can be used to decrypt it. Theoretically, it is impossible to deduce the private-key from the corresponding public-key.    According to one implementation, when a sender wants to send a secure message to a recipient, he uses the recipient's public-key to encrypt the message, and the recipient uses his corresponding private-key to decrypt it. That way, the recipient of a data can be sure that the data comes from a purported sender (if the key was not stolen . . . ), and the sender can be sure that the data reaches the right destination.    Pseudo-random numbers are numbers having properties similar to those of random numbers, for example, certain distribution properties and lack of (easily discernible) relationship between consecutive numbers. True, unbiased, random numbers are difficult if not impossible to generate. Pseudo-random numbers can be generated using computing machinery means, software and hardware. These means are usually called “Random-number generators”, or RNG. Both linear and non-linear RNGs are known, with linear RNGs having a greater predictability problem.    DES (Data Encryption Standard) is a NIST-standard secret key cryptography method that uses a 56-bit key. DES is based on an IBM algorithm that was further developed by the U.S. National Security Agency. It uses the block cipher method, which breaks the text into 64-bit blocks before encrypting them. There are several DES encryption modes. The most popular mode exclusive ORs each plain text block with the previous encrypted block.    DES3 (also called Triple DES) is an enhancement to DES that provides more security than standard DES, which uses only one 56-bit key. DES3 may be also be used for generating random numbers.    A Hash function is a transformation that converts a number (or other data representation) from a large space to a (typically) smaller space, typically with an even distribution. In a typical implementation, a hash function is used to convert a large string of fixed or varying length into a short value of a fixed size, which is called the Hash value of the string. One property of many Hash functions is that they are truly unreversible in that the original number cannot be reconstructed from the Hash value. This can be useful for protecting against untrustworthy employees. Merely encrypting the data may not be enough if the employee can steal the keys for decryption. It is often desirable that the computational effort be relatively moderate. Providing an even distribution may be useful in reducing the number of collisions (e.g., different inputs with same has value. Examples of well-known Hash functions are MD2 and MD5.    E-wallet is a recent effort to provide the electronic equivalent of a wallet (or better than equivalent) for e-commerce transactions and/or for physical transactions. Many implementations are known. One implementation is that a digital wallet (e-wallet) holds digital money that is purchased similar to travelers-checks, a prepaid account, or it can contain credit card information. The wallet may reside, for example, in a user's machine (including an electronic device/card) or on the servers of a Web payment service. When stored in a user's machine, the wallet may use a digital certificate for identifying a cardholder.    SSL (Secure Sockets Layer) is a commonly used protocol for managing the security of a message transmission on the Internet. SSL uses a program layer located between the Internet's Hypertext Transfer Protocol (HTTP) and Transport Control Protocol (TCP) layers. SSL is included as part of both the Microsoft and Netscape browsers and many Web server products. The “sockets” part of the term refers to the sockets method of passing data back and forth between a client and a server program in a network or between program layers in the same computer. SSL uses the public-and-private key encryption system provided by RSA, which also includes the use of a digital certificate.    CRC (Cyclic redundancy checking) is a method of checking for errors in data that has been transmitted on a communications link. A sending device applies a 16- or 32-bit polynomial to a block of data that is to be transmitted and appends the resulting cyclic redundancy code (CRC) to the block. A receiver applies the same polynomial to the data and compares its resulting CRC with the result appended by the sender. If they agree, the data has probably been received successfully. If not, the sender can be notified to resend the block of data.    One Time Code is a method by which whenever an authentication trial is initiated, a unique code, single use (or possibly small number of uses), is provided for authentication.